home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / mozilla-firefox / include / xpcom / nsIClassInfo.h < prev    next >
C/C++ Source or Header  |  2006-05-08  |  9KB  |  246 lines

  1. /*
  2.  * DO NOT EDIT.  THIS FILE IS GENERATED FROM nsIClassInfo.idl
  3.  */
  4.  
  5. #ifndef __gen_nsIClassInfo_h__
  6. #define __gen_nsIClassInfo_h__
  7.  
  8.  
  9. #ifndef __gen_nsISupports_h__
  10. #include "nsISupports.h"
  11. #endif
  12.  
  13. #ifndef __gen_nsIProgrammingLanguage_h__
  14. #include "nsIProgrammingLanguage.h"
  15. #endif
  16.  
  17. /* For IDL files that don't want to include root IDL files. */
  18. #ifndef NS_NO_VTABLE
  19. #define NS_NO_VTABLE
  20. #endif
  21.  
  22. /* starting interface:    nsIClassInfo */
  23. #define NS_ICLASSINFO_IID_STR "986c11d0-f340-11d4-9075-0010a4e73d9a"
  24.  
  25. #define NS_ICLASSINFO_IID \
  26.   {0x986c11d0, 0xf340, 0x11d4, \
  27.     { 0x90, 0x75, 0x00, 0x10, 0xa4, 0xe7, 0x3d, 0x9a }}
  28.  
  29. /**
  30.  * Provides information about a specific implementation class
  31.  * @status FROZEN
  32.  */
  33. class NS_NO_VTABLE nsIClassInfo : public nsISupports {
  34.  public: 
  35.  
  36.   NS_DEFINE_STATIC_IID_ACCESSOR(NS_ICLASSINFO_IID)
  37.  
  38.   /**
  39.      * Get an ordered list of the interface ids that instances of the class 
  40.      * promise to implement. Note that nsISupports is an implicit member 
  41.      * of any such list and need not be included. 
  42.      *
  43.      * Should set *count = 0 and *array = null and return NS_OK if getting the 
  44.      * list is not supported.
  45.      */
  46.   /* void getInterfaces (out PRUint32 count, [array, size_is (count), retval] out nsIIDPtr array); */
  47.   NS_IMETHOD GetInterfaces(PRUint32 *count, nsIID * **array) = 0;
  48.  
  49.   /**
  50.      * Get a language mapping specific helper object that may assist in using
  51.      * objects of this class in a specific lanaguage. For instance, if asked
  52.      * for the helper for nsIProgrammingLanguage::JAVASCRIPT this might return 
  53.      * an object that can be QI'd into the nsIXPCScriptable interface to assist 
  54.      * XPConnect in supplying JavaScript specific behavior to callers of the 
  55.      * instance object.
  56.      *
  57.      * see: nsIProgrammingLanguage.idl
  58.      *
  59.      * Should return null if no helper available for given language.
  60.      */
  61.   /* nsISupports getHelperForLanguage (in PRUint32 language); */
  62.   NS_IMETHOD GetHelperForLanguage(PRUint32 language, nsISupports **_retval) = 0;
  63.  
  64.   /**
  65.      * A contract ID through which an instance of this class can be created
  66.      * (or accessed as a service, if |flags & SINGLETON|), or null.
  67.      */
  68.   /* readonly attribute string contractID; */
  69.   NS_IMETHOD GetContractID(char * *aContractID) = 0;
  70.  
  71.   /**
  72.      * A human readable string naming the class, or null.
  73.      */
  74.   /* readonly attribute string classDescription; */
  75.   NS_IMETHOD GetClassDescription(char * *aClassDescription) = 0;
  76.  
  77.   /**
  78.      * A class ID through which an instance of this class can be created
  79.      * (or accessed as a service, if |flags & SINGLETON|), or null.
  80.      */
  81.   /* readonly attribute nsCIDPtr classID; */
  82.   NS_IMETHOD GetClassID(nsCID * *aClassID) = 0;
  83.  
  84.   /**
  85.      * Return language type from list in nsIProgrammingLanguage
  86.      */
  87.   /* readonly attribute PRUint32 implementationLanguage; */
  88.   NS_IMETHOD GetImplementationLanguage(PRUint32 *aImplementationLanguage) = 0;
  89.  
  90.   /**
  91.      * Bitflags for 'flags' attribute.
  92.      */
  93.   enum { SINGLETON = 1U };
  94.  
  95.   enum { THREADSAFE = 2U };
  96.  
  97.   enum { MAIN_THREAD_ONLY = 4U };
  98.  
  99.   enum { DOM_OBJECT = 8U };
  100.  
  101.   enum { PLUGIN_OBJECT = 16U };
  102.  
  103.   enum { EAGER_CLASSINFO = 32U };
  104.  
  105.   /**
  106.      * 'flags' attribute bitflag: whether objects of this type implement
  107.      * nsIContent.
  108.      */
  109.   enum { CONTENT_NODE = 64U };
  110.  
  111.   enum { RESERVED = 2147483648U };
  112.  
  113.   /* readonly attribute PRUint32 flags; */
  114.   NS_IMETHOD GetFlags(PRUint32 *aFlags) = 0;
  115.  
  116.   /**
  117.      * Also a class ID through which an instance of this class can be created
  118.      * (or accessed as a service, if |flags & SINGLETON|).  If the class does
  119.      * not have a CID, it should return NS_ERROR_NOT_AVAILABLE.  This attribute
  120.      * exists so C++ callers can avoid allocating and freeing a CID, as would
  121.      * happen if they used classID.
  122.      */
  123.   /* [notxpcom] readonly attribute nsCID classIDNoAlloc; */
  124.   NS_IMETHOD GetClassIDNoAlloc(nsCID *aClassIDNoAlloc) = 0;
  125.  
  126. };
  127.  
  128. /* Use this macro when declaring classes that implement this interface. */
  129. #define NS_DECL_NSICLASSINFO \
  130.   NS_IMETHOD GetInterfaces(PRUint32 *count, nsIID * **array); \
  131.   NS_IMETHOD GetHelperForLanguage(PRUint32 language, nsISupports **_retval); \
  132.   NS_IMETHOD GetContractID(char * *aContractID); \
  133.   NS_IMETHOD GetClassDescription(char * *aClassDescription); \
  134.   NS_IMETHOD GetClassID(nsCID * *aClassID); \
  135.   NS_IMETHOD GetImplementationLanguage(PRUint32 *aImplementationLanguage); \
  136.   NS_IMETHOD GetFlags(PRUint32 *aFlags); \
  137.   NS_IMETHOD GetClassIDNoAlloc(nsCID *aClassIDNoAlloc); 
  138.  
  139. /* Use this macro to declare functions that forward the behavior of this interface to another object. */
  140. #define NS_FORWARD_NSICLASSINFO(_to) \
  141.   NS_IMETHOD GetInterfaces(PRUint32 *count, nsIID * **array) { return _to GetInterfaces(count, array); } \
  142.   NS_IMETHOD GetHelperForLanguage(PRUint32 language, nsISupports **_retval) { return _to GetHelperForLanguage(language, _retval); } \
  143.   NS_IMETHOD GetContractID(char * *aContractID) { return _to GetContractID(aContractID); } \
  144.   NS_IMETHOD GetClassDescription(char * *aClassDescription) { return _to GetClassDescription(aClassDescription); } \
  145.   NS_IMETHOD GetClassID(nsCID * *aClassID) { return _to GetClassID(aClassID); } \
  146.   NS_IMETHOD GetImplementationLanguage(PRUint32 *aImplementationLanguage) { return _to GetImplementationLanguage(aImplementationLanguage); } \
  147.   NS_IMETHOD GetFlags(PRUint32 *aFlags) { return _to GetFlags(aFlags); } \
  148.   NS_IMETHOD GetClassIDNoAlloc(nsCID *aClassIDNoAlloc) { return _to GetClassIDNoAlloc(aClassIDNoAlloc); } 
  149.  
  150. /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
  151. #define NS_FORWARD_SAFE_NSICLASSINFO(_to) \
  152.   NS_IMETHOD GetInterfaces(PRUint32 *count, nsIID * **array) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInterfaces(count, array); } \
  153.   NS_IMETHOD GetHelperForLanguage(PRUint32 language, nsISupports **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHelperForLanguage(language, _retval); } \
  154.   NS_IMETHOD GetContractID(char * *aContractID) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetContractID(aContractID); } \
  155.   NS_IMETHOD GetClassDescription(char * *aClassDescription) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetClassDescription(aClassDescription); } \
  156.   NS_IMETHOD GetClassID(nsCID * *aClassID) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetClassID(aClassID); } \
  157.   NS_IMETHOD GetImplementationLanguage(PRUint32 *aImplementationLanguage) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetImplementationLanguage(aImplementationLanguage); } \
  158.   NS_IMETHOD GetFlags(PRUint32 *aFlags) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFlags(aFlags); } \
  159.   NS_IMETHOD GetClassIDNoAlloc(nsCID *aClassIDNoAlloc) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetClassIDNoAlloc(aClassIDNoAlloc); } 
  160.  
  161. #if 0
  162. /* Use the code below as a template for the implementation class for this interface. */
  163.  
  164. /* Header file */
  165. class nsClassInfo : public nsIClassInfo
  166. {
  167. public:
  168.   NS_DECL_ISUPPORTS
  169.   NS_DECL_NSICLASSINFO
  170.  
  171.   nsClassInfo();
  172.  
  173. private:
  174.   ~nsClassInfo();
  175.  
  176. protected:
  177.   /* additional members */
  178. };
  179.  
  180. /* Implementation file */
  181. NS_IMPL_ISUPPORTS1(nsClassInfo, nsIClassInfo)
  182.  
  183. nsClassInfo::nsClassInfo()
  184. {
  185.   /* member initializers and constructor code */
  186. }
  187.  
  188. nsClassInfo::~nsClassInfo()
  189. {
  190.   /* destructor code */
  191. }
  192.  
  193. /* void getInterfaces (out PRUint32 count, [array, size_is (count), retval] out nsIIDPtr array); */
  194. NS_IMETHODIMP nsClassInfo::GetInterfaces(PRUint32 *count, nsIID * **array)
  195. {
  196.     return NS_ERROR_NOT_IMPLEMENTED;
  197. }
  198.  
  199. /* nsISupports getHelperForLanguage (in PRUint32 language); */
  200. NS_IMETHODIMP nsClassInfo::GetHelperForLanguage(PRUint32 language, nsISupports **_retval)
  201. {
  202.     return NS_ERROR_NOT_IMPLEMENTED;
  203. }
  204.  
  205. /* readonly attribute string contractID; */
  206. NS_IMETHODIMP nsClassInfo::GetContractID(char * *aContractID)
  207. {
  208.     return NS_ERROR_NOT_IMPLEMENTED;
  209. }
  210.  
  211. /* readonly attribute string classDescription; */
  212. NS_IMETHODIMP nsClassInfo::GetClassDescription(char * *aClassDescription)
  213. {
  214.     return NS_ERROR_NOT_IMPLEMENTED;
  215. }
  216.  
  217. /* readonly attribute nsCIDPtr classID; */
  218. NS_IMETHODIMP nsClassInfo::GetClassID(nsCID * *aClassID)
  219. {
  220.     return NS_ERROR_NOT_IMPLEMENTED;
  221. }
  222.  
  223. /* readonly attribute PRUint32 implementationLanguage; */
  224. NS_IMETHODIMP nsClassInfo::GetImplementationLanguage(PRUint32 *aImplementationLanguage)
  225. {
  226.     return NS_ERROR_NOT_IMPLEMENTED;
  227. }
  228.  
  229. /* readonly attribute PRUint32 flags; */
  230. NS_IMETHODIMP nsClassInfo::GetFlags(PRUint32 *aFlags)
  231. {
  232.     return NS_ERROR_NOT_IMPLEMENTED;
  233. }
  234.  
  235. /* [notxpcom] readonly attribute nsCID classIDNoAlloc; */
  236. NS_IMETHODIMP nsClassInfo::GetClassIDNoAlloc(nsCID *aClassIDNoAlloc)
  237. {
  238.     return NS_ERROR_NOT_IMPLEMENTED;
  239. }
  240.  
  241. /* End of implementation class template. */
  242. #endif
  243.  
  244.  
  245. #endif /* __gen_nsIClassInfo_h__ */
  246.